EXPECTED = {'PKIXCMP': {'extensibility-implied': False,
             'imports': {'PKCS-10': ['CertificationRequest'],
                         'PKIX1Explicit88': ['AlgorithmIdentifier',
                                             'Certificate',
                                             'CertificateList',
                                             'Extensions',
                                             'UTF8String'],
                         'PKIX1Implicit88': ['GeneralName', 'KeyIdentifier'],
                         'PKIXCRMF-2005': ['CertId',
                                           'CertReqMessages',
                                           'CertTemplate',
                                           'EncryptedValue',
                                           'PKIPublicationInfo']},
             'object-classes': {},
             'object-sets': {},
             'tags': 'EXPLICIT',
             'types': {'CAKeyUpdAnnContent': {'members': [{'name': 'oldWithNew',
                                                           'type': 'CMPCertificate'},
                                                          {'name': 'newWithOld',
                                                           'type': 'CMPCertificate'},
                                                          {'name': 'newWithNew',
                                                           'type': 'CMPCertificate'}],
                                              'type': 'SEQUENCE'},
                       'CMPCertificate': {'members': [{'name': 'x509v3PKCert',
                                                       'type': 'Certificate'}],
                                          'type': 'CHOICE'},
                       'CRLAnnContent': {'element': {'type': 'CertificateList'},
                                         'type': 'SEQUENCE OF'},
                       'CertAnnContent': {'type': 'CMPCertificate'},
                       'CertConfirmContent': {'element': {'type': 'CertStatus'},
                                              'type': 'SEQUENCE OF'},
                       'CertOrEncCert': {'members': [{'name': 'certificate',
                                                      'tag': {'number': 0},
                                                      'type': 'CMPCertificate'},
                                                     {'name': 'encryptedCert',
                                                      'tag': {'number': 1},
                                                      'type': 'EncryptedValue'}],
                                         'type': 'CHOICE'},
                       'CertRepMessage': {'members': [{'element': {'type': 'CMPCertificate'},
                                                       'name': 'caPubs',
                                                       'optional': True,
                                                       'size': [(1, 'MAX')],
                                                       'tag': {'number': 1},
                                                       'type': 'SEQUENCE OF'},
                                                      {'element': {'type': 'CertResponse'},
                                                       'name': 'response',
                                                       'type': 'SEQUENCE OF'}],
                                          'type': 'SEQUENCE'},
                       'CertResponse': {'members': [{'name': 'certReqId',
                                                     'type': 'INTEGER'},
                                                    {'name': 'status',
                                                     'type': 'PKIStatusInfo'},
                                                    {'name': 'certifiedKeyPair',
                                                     'optional': True,
                                                     'type': 'CertifiedKeyPair'},
                                                    {'name': 'rspInfo',
                                                     'optional': True,
                                                     'type': 'OCTET STRING'}],
                                        'type': 'SEQUENCE'},
                       'CertStatus': {'members': [{'name': 'certHash',
                                                   'type': 'OCTET STRING'},
                                                  {'name': 'certReqId',
                                                   'type': 'INTEGER'},
                                                  {'name': 'statusInfo',
                                                   'optional': True,
                                                   'type': 'PKIStatusInfo'}],
                                      'type': 'SEQUENCE'},
                       'CertifiedKeyPair': {'members': [{'name': 'certOrEncCert',
                                                         'type': 'CertOrEncCert'},
                                                        {'name': 'privateKey',
                                                         'optional': True,
                                                         'tag': {'number': 0},
                                                         'type': 'EncryptedValue'},
                                                        {'name': 'publicationInfo',
                                                         'optional': True,
                                                         'tag': {'number': 1},
                                                         'type': 'PKIPublicationInfo'}],
                                            'type': 'SEQUENCE'},
                       'Challenge': {'members': [{'name': 'owf',
                                                  'optional': True,
                                                  'type': 'AlgorithmIdentifier'},
                                                 {'name': 'witness',
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'challenge',
                                                  'type': 'OCTET STRING'}],
                                     'type': 'SEQUENCE'},
                       'DHBMParameter': {'members': [{'name': 'owf',
                                                      'type': 'AlgorithmIdentifier'},
                                                     {'name': 'mac',
                                                      'type': 'AlgorithmIdentifier'}],
                                         'type': 'SEQUENCE'},
                       'ErrorMsgContent': {'members': [{'name': 'pKIStatusInfo',
                                                        'type': 'PKIStatusInfo'},
                                                       {'name': 'errorCode',
                                                        'optional': True,
                                                        'type': 'INTEGER'},
                                                       {'name': 'errorDetails',
                                                        'optional': True,
                                                        'type': 'PKIFreeText'}],
                                           'type': 'SEQUENCE'},
                       'GenMsgContent': {'element': {'type': 'InfoTypeAndValue'},
                                         'type': 'SEQUENCE OF'},
                       'GenRepContent': {'element': {'type': 'InfoTypeAndValue'},
                                         'type': 'SEQUENCE OF'},
                       'InfoTypeAndValue': {'members': [{'name': 'infoType',
                                                         'type': 'OBJECT '
                                                                 'IDENTIFIER'},
                                                        {'choices': {},
                                                         'name': 'infoValue',
                                                         'optional': True,
                                                         'type': 'ANY DEFINED '
                                                                 'BY',
                                                         'value': 'infoType'}],
                                            'type': 'SEQUENCE'},
                       'KeyRecRepContent': {'members': [{'name': 'status',
                                                         'type': 'PKIStatusInfo'},
                                                        {'name': 'newSigCert',
                                                         'optional': True,
                                                         'tag': {'number': 0},
                                                         'type': 'CMPCertificate'},
                                                        {'element': {'type': 'CMPCertificate'},
                                                         'name': 'caCerts',
                                                         'optional': True,
                                                         'size': [(1, 'MAX')],
                                                         'tag': {'number': 1},
                                                         'type': 'SEQUENCE OF'},
                                                        {'element': {'type': 'CertifiedKeyPair'},
                                                         'name': 'keyPairHist',
                                                         'optional': True,
                                                         'size': [(1, 'MAX')],
                                                         'tag': {'number': 2},
                                                         'type': 'SEQUENCE '
                                                                 'OF'}],
                                            'type': 'SEQUENCE'},
                       'NestedMessageContent': {'type': 'PKIMessages'},
                       'OOBCert': {'type': 'CMPCertificate'},
                       'OOBCertHash': {'members': [{'name': 'hashAlg',
                                                    'optional': True,
                                                    'tag': {'number': 0},
                                                    'type': 'AlgorithmIdentifier'},
                                                   {'name': 'certId',
                                                    'optional': True,
                                                    'tag': {'number': 1},
                                                    'type': 'CertId'},
                                                   {'name': 'hashVal',
                                                    'type': 'BIT STRING'}],
                                       'type': 'SEQUENCE'},
                       'PBMParameter': {'members': [{'name': 'salt',
                                                     'type': 'OCTET STRING'},
                                                    {'name': 'owf',
                                                     'type': 'AlgorithmIdentifier'},
                                                    {'name': 'iterationCount',
                                                     'type': 'INTEGER'},
                                                    {'name': 'mac',
                                                     'type': 'AlgorithmIdentifier'}],
                                        'type': 'SEQUENCE'},
                       'PKIBody': {'members': [{'name': 'ir',
                                                'tag': {'number': 0},
                                                'type': 'CertReqMessages'},
                                               {'name': 'ip',
                                                'tag': {'number': 1},
                                                'type': 'CertRepMessage'},
                                               {'name': 'cr',
                                                'tag': {'number': 2},
                                                'type': 'CertReqMessages'},
                                               {'name': 'cp',
                                                'tag': {'number': 3},
                                                'type': 'CertRepMessage'},
                                               {'name': 'p10cr',
                                                'tag': {'number': 4},
                                                'type': 'CertificationRequest'},
                                               {'name': 'popdecc',
                                                'tag': {'number': 5},
                                                'type': 'POPODecKeyChallContent'},
                                               {'name': 'popdecr',
                                                'tag': {'number': 6},
                                                'type': 'POPODecKeyRespContent'},
                                               {'name': 'kur',
                                                'tag': {'number': 7},
                                                'type': 'CertReqMessages'},
                                               {'name': 'kup',
                                                'tag': {'number': 8},
                                                'type': 'CertRepMessage'},
                                               {'name': 'krr',
                                                'tag': {'number': 9},
                                                'type': 'CertReqMessages'},
                                               {'name': 'krp',
                                                'tag': {'number': 10},
                                                'type': 'KeyRecRepContent'},
                                               {'name': 'rr',
                                                'tag': {'number': 11},
                                                'type': 'RevReqContent'},
                                               {'name': 'rp',
                                                'tag': {'number': 12},
                                                'type': 'RevRepContent'},
                                               {'name': 'ccr',
                                                'tag': {'number': 13},
                                                'type': 'CertReqMessages'},
                                               {'name': 'ccp',
                                                'tag': {'number': 14},
                                                'type': 'CertRepMessage'},
                                               {'name': 'ckuann',
                                                'tag': {'number': 15},
                                                'type': 'CAKeyUpdAnnContent'},
                                               {'name': 'cann',
                                                'tag': {'number': 16},
                                                'type': 'CertAnnContent'},
                                               {'name': 'rann',
                                                'tag': {'number': 17},
                                                'type': 'RevAnnContent'},
                                               {'name': 'crlann',
                                                'tag': {'number': 18},
                                                'type': 'CRLAnnContent'},
                                               {'name': 'pkiconf',
                                                'tag': {'number': 19},
                                                'type': 'PKIConfirmContent'},
                                               {'name': 'nested',
                                                'tag': {'number': 20},
                                                'type': 'NestedMessageContent'},
                                               {'name': 'genm',
                                                'tag': {'number': 21},
                                                'type': 'GenMsgContent'},
                                               {'name': 'genp',
                                                'tag': {'number': 22},
                                                'type': 'GenRepContent'},
                                               {'name': 'error',
                                                'tag': {'number': 23},
                                                'type': 'ErrorMsgContent'},
                                               {'name': 'certConf',
                                                'tag': {'number': 24},
                                                'type': 'CertConfirmContent'},
                                               {'name': 'pollReq',
                                                'tag': {'number': 25},
                                                'type': 'PollReqContent'},
                                               {'name': 'pollRep',
                                                'tag': {'number': 26},
                                                'type': 'PollRepContent'}],
                                   'type': 'CHOICE'},
                       'PKIConfirmContent': {'type': 'NULL'},
                       'PKIFailureInfo': {'named-bits': [('badAlg', '0'),
                                                         ('badMessageCheck',
                                                          '1'),
                                                         ('badRequest', '2'),
                                                         ('badTime', '3'),
                                                         ('badCertId', '4'),
                                                         ('badDataFormat', '5'),
                                                         ('wrongAuthority',
                                                          '6'),
                                                         ('incorrectData', '7'),
                                                         ('missingTimeStamp',
                                                          '8'),
                                                         ('badPOP', '9'),
                                                         ('certRevoked', '10'),
                                                         ('certConfirmed',
                                                          '11'),
                                                         ('wrongIntegrity',
                                                          '12'),
                                                         ('badRecipientNonce',
                                                          '13'),
                                                         ('timeNotAvailable',
                                                          '14'),
                                                         ('unacceptedPolicy',
                                                          '15'),
                                                         ('unacceptedExtension',
                                                          '16'),
                                                         ('addInfoNotAvailable',
                                                          '17'),
                                                         ('badSenderNonce',
                                                          '18'),
                                                         ('badCertTemplate',
                                                          '19'),
                                                         ('signerNotTrusted',
                                                          '20'),
                                                         ('transactionIdInUse',
                                                          '21'),
                                                         ('unsupportedVersion',
                                                          '22'),
                                                         ('notAuthorized',
                                                          '23'),
                                                         ('systemUnavail',
                                                          '24'),
                                                         ('systemFailure',
                                                          '25'),
                                                         ('duplicateCertReq',
                                                          '26')],
                                          'type': 'BIT STRING'},
                       'PKIFreeText': {'element': {'type': 'UTF8String'},
                                       'size': [(1, 'MAX')],
                                       'type': 'SEQUENCE OF'},
                       'PKIHeader': {'members': [{'name': 'pvno',
                                                  'named-numbers': {'cmp1999': 1,
                                                                    'cmp2000': 2},
                                                  'type': 'INTEGER'},
                                                 {'name': 'sender',
                                                  'type': 'GeneralName'},
                                                 {'name': 'recipient',
                                                  'type': 'GeneralName'},
                                                 {'name': 'messageTime',
                                                  'optional': True,
                                                  'tag': {'number': 0},
                                                  'type': 'GeneralizedTime'},
                                                 {'name': 'protectionAlg',
                                                  'optional': True,
                                                  'tag': {'number': 1},
                                                  'type': 'AlgorithmIdentifier'},
                                                 {'name': 'senderKID',
                                                  'optional': True,
                                                  'tag': {'number': 2},
                                                  'type': 'KeyIdentifier'},
                                                 {'name': 'recipKID',
                                                  'optional': True,
                                                  'tag': {'number': 3},
                                                  'type': 'KeyIdentifier'},
                                                 {'name': 'transactionID',
                                                  'optional': True,
                                                  'tag': {'number': 4},
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'senderNonce',
                                                  'optional': True,
                                                  'tag': {'number': 5},
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'recipNonce',
                                                  'optional': True,
                                                  'tag': {'number': 6},
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'freeText',
                                                  'optional': True,
                                                  'tag': {'number': 7},
                                                  'type': 'PKIFreeText'},
                                                 {'element': {'type': 'InfoTypeAndValue'},
                                                  'name': 'generalInfo',
                                                  'optional': True,
                                                  'size': [(1, 'MAX')],
                                                  'tag': {'number': 8},
                                                  'type': 'SEQUENCE OF'}],
                                     'type': 'SEQUENCE'},
                       'PKIMessage': {'members': [{'name': 'header',
                                                   'type': 'PKIHeader'},
                                                  {'name': 'body',
                                                   'type': 'PKIBody'},
                                                  {'name': 'protection',
                                                   'optional': True,
                                                   'tag': {'number': 0},
                                                   'type': 'PKIProtection'},
                                                  {'element': {'type': 'CMPCertificate'},
                                                   'name': 'extraCerts',
                                                   'optional': True,
                                                   'size': [(1, 'MAX')],
                                                   'tag': {'number': 1},
                                                   'type': 'SEQUENCE OF'}],
                                      'type': 'SEQUENCE'},
                       'PKIMessages': {'element': {'type': 'PKIMessage'},
                                       'size': [(1, 'MAX')],
                                       'type': 'SEQUENCE OF'},
                       'PKIProtection': {'type': 'BIT STRING'},
                       'PKIStatus': {'named-numbers': {'accepted': 0,
                                                       'grantedWithMods': 1,
                                                       'keyUpdateWarning': 6,
                                                       'rejection': 2,
                                                       'revocationNotification': 5,
                                                       'revocationWarning': 4,
                                                       'waiting': 3},
                                     'type': 'INTEGER'},
                       'PKIStatusInfo': {'members': [{'name': 'status',
                                                      'type': 'PKIStatus'},
                                                     {'name': 'statusString',
                                                      'optional': True,
                                                      'type': 'PKIFreeText'},
                                                     {'name': 'failInfo',
                                                      'optional': True,
                                                      'type': 'PKIFailureInfo'}],
                                         'type': 'SEQUENCE'},
                       'POPODecKeyChallContent': {'element': {'type': 'Challenge'},
                                                  'type': 'SEQUENCE OF'},
                       'POPODecKeyRespContent': {'element': {'type': 'INTEGER'},
                                                 'type': 'SEQUENCE OF'},
                       'PollRepContent': {'element': {'members': [{'name': 'certReqId',
                                                                   'type': 'INTEGER'},
                                                                  {'name': 'checkAfter',
                                                                   'type': 'INTEGER'},
                                                                  {'name': 'reason',
                                                                   'optional': True,
                                                                   'type': 'PKIFreeText'}],
                                                      'type': 'SEQUENCE'},
                                          'type': 'SEQUENCE OF'},
                       'PollReqContent': {'element': {'members': [{'name': 'certReqId',
                                                                   'type': 'INTEGER'}],
                                                      'type': 'SEQUENCE'},
                                          'type': 'SEQUENCE OF'},
                       'ProtectedPart': {'members': [{'name': 'header',
                                                      'type': 'PKIHeader'},
                                                     {'name': 'body',
                                                      'type': 'PKIBody'}],
                                         'type': 'SEQUENCE'},
                       'RevAnnContent': {'members': [{'name': 'status',
                                                      'type': 'PKIStatus'},
                                                     {'name': 'certId',
                                                      'type': 'CertId'},
                                                     {'name': 'willBeRevokedAt',
                                                      'type': 'GeneralizedTime'},
                                                     {'name': 'badSinceDate',
                                                      'type': 'GeneralizedTime'},
                                                     {'name': 'crlDetails',
                                                      'optional': True,
                                                      'type': 'Extensions'}],
                                         'type': 'SEQUENCE'},
                       'RevDetails': {'members': [{'name': 'certDetails',
                                                   'type': 'CertTemplate'},
                                                  {'name': 'crlEntryDetails',
                                                   'optional': True,
                                                   'type': 'Extensions'}],
                                      'type': 'SEQUENCE'},
                       'RevRepContent': {'members': [{'element': {'type': 'PKIStatusInfo'},
                                                      'name': 'status',
                                                      'size': [(1, 'MAX')],
                                                      'type': 'SEQUENCE OF'},
                                                     {'element': {'type': 'CertId'},
                                                      'name': 'revCerts',
                                                      'optional': True,
                                                      'size': [(1, 'MAX')],
                                                      'tag': {'number': 0},
                                                      'type': 'SEQUENCE OF'},
                                                     {'element': {'type': 'CertificateList'},
                                                      'name': 'crls',
                                                      'optional': True,
                                                      'size': [(1, 'MAX')],
                                                      'tag': {'number': 1},
                                                      'type': 'SEQUENCE OF'}],
                                         'type': 'SEQUENCE'},
                       'RevReqContent': {'element': {'type': 'RevDetails'},
                                         'type': 'SEQUENCE OF'}},
             'values': {'id-DHBasedMac': {'type': 'OBJECT IDENTIFIER',
                                          'value': [1,
                                                    2,
                                                    840,
                                                    113533,
                                                    7,
                                                    66,
                                                    30]},
                        'id-PasswordBasedMac': {'type': 'OBJECT IDENTIFIER',
                                                'value': [1,
                                                          2,
                                                          840,
                                                          113533,
                                                          7,
                                                          66,
                                                          13]}}}}